#ifndef _UIBASEIMPL_H_
#define _UIBASEIMPL_H_

#include "stdafx.h"

class CUiBaseImpl : public IUIBase, public IPlugin, public IPluginRun, public CUnknownImp
{
public:
    CUiBaseImpl(void);
    virtual ~CUiBaseImpl(void);

public:
    BEGIN_STDCOM_MAP
    STDCOM_INTERFACE_ENTRY_UNKNOWN_(IUIBase)
    STDCOM_INTERFACE_ENTRY(IPlugin)
    STDCOM_INTERFACE_ENTRY(IPluginRun)
    STDCOM_INTERFACE_ENTRY(IUIBase)
    END_STDCOM_MAP

    // IPlugin
    std_method(Init)(IBase* pRot, IBase* pBase);
    std_method(Uninit)();

    // IPluginRun
    std_method(Start)(_pid_t pid, unsigned int type);
    std_method(Stop)(unsigned int exit);

    // IUiBase
    std_method(CreateControl)(UIType type, IBase** pControl);

private:
    _lComPtr<IRot> m_pRot;
};

#endif
